1. Technical Field
The present invention relates to an improved data processing system and, more particular, to methods of memory mapping for I/O devices.
2. Description of Related Art
PCI I/O devices have on card memory and register space that needs to be mapped to system memory. There are two approaches to assigning memory space. The first approach is called dynamic allocation where the system “walks” all of the PCI buses, queries each device to determine how much space the device needs, and then assigns memory to each device based on needs. The second approach is a rigid approach where the data processing system has a set amount of memory space available on a per slot or per PCI Host Bridge basis.
The problem with dynamic allocation occurs when this is attempted in systems in which a large number of PCI Host bridges and PCI Host Bridges (PHB) exist that are located different drawers such as, for example, the RS/6000 server line. The RS/6000 server line is a line of products available from the International Business Machines Corporation of Armonk, N.Y. In the RS/6000 sever line, there can be upwards of 32 drawers where each drawer could have three (3) to six (6) PHBs. A problem also occurs with this approach when a hotplugging operation is performed if an adapter is added or an adapter is replaced with another adapter that needs additional space.
The problem with the fixed space is that it is too rigid. It works for today's devices and the devices that are planned for. However, the future is always unpredictable and it is quite likely that a future unpredictable device will be developed that will break the design. Therefore, there is a need for a flexible approach to memory mapping that overcomes the obstacles associated with fixed space designs, as well as overcoming problems associated with systems having a large number of PCI host bridges.